package com.j180.service.supplier.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.j180.bean.PageBean;
import com.j180.bean.Supplier;
import com.j180.dao.supplier.ISupplierDao;
import com.j180.service.supplier.ISupplierService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class SupplierService implements ISupplierService {

    @Autowired
    private ISupplierDao iSupplierDao;

    /**
     * 管理员查询并分页显示所有的供货商
     * @param curPage int类型，当前页数
     * @param pageSize int类型，每页显示条数
     * @return List类型，供货商集合
     */
    @Override
    public PageBean<Supplier> showAllSuppliers(int curPage, int pageSize) {
        PageHelper.startPage(curPage, pageSize);

        List<Supplier> suppliers = iSupplierDao.getAllSuppliers();
        PageInfo<Supplier> pageInfo = new PageInfo<>(suppliers);

        PageBean<Supplier> pageBean = new PageBean<>();
        pageBean.setDatas(suppliers);
        pageBean.setCurrentPage(curPage);
        pageBean.setPageSize(pageSize);
        pageBean.setTolNum((int) pageInfo.getTotal());
        pageBean.setTolPage(pageInfo.getPages());

        return pageBean;
    }

    /**
     * 管理员通过供货商id查询供货商
     * @param id Integer类型，供货商id
     * @return Supplier类型，
     */
    @Override
    public Supplier showSupplierById(Integer id) {
        Supplier supplier = iSupplierDao.getSuppliersById(id);
        return supplier;
    }

    /**
     * 管理员添加一个供货商
     * @param supplier Supplier类型，供应商
     * @return int类型，1表示添加成功
     */
    @Override
    public int addSupplier(Supplier supplier) {
        int result = iSupplierDao.insertSupplier(supplier);
        return result;
    }

    /**
     * 管理员根据供货商id删除一个供货商
     * @param id Integer类型，供货商id
     * @return int类型，1表示删除成功
     */
    @Override
    public int deleteSupplier(Integer id) {
        int result = iSupplierDao.deleteSupplier(id);
        return result;
    }

    /**
     * 管理员修改一个供货商信息
     * @param supplier Supplier类型，供货商
     * @return int类型，1表示修改成功
     */
    @Override
    public int updateSupplier(Supplier supplier) {
        int result = iSupplierDao.updateSupplier(supplier);
        return result;
    }
}
